<template>
        <!--
            问题：我们不知道什么时候能够拿到 max 值，但是总归有一刻，会得到真正的 max 值。
            我们可以使用 watch 属性监听，来监听父组件传递过来的 max 值，不管 watch 会被触发几次，但是，最后一次，肯定是一个合法的 max 数值
        -->
        <div class="mui-numbox" data-numbox-min='1'>
            <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
            <input @change="countChanged" ref="numbox" id="test" class="mui-input-numbox" type="number" value="1" />
            <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
        </div>
</template>

<script>
import mui from "../../lib/mui/js/mui.min.js";
export default {
  mounted() {
    // 初始化数字选择框组件
    mui(".mui-numbox").numbox();
  },
  methods: {
    countChanged() {
      // 每当文本框的数据被修改的时候，立即把最新的数据，通过事件调用，传递给父组件
      // console.log(this.$refs.numbox.value)
      // 调用父组件传过来的方法
      this.$emit("getCount", parseInt(this.$refs.numbox.value));
    }
  },
  props: ["max"],
  watch: {
    // 属性监听,如果监听到 【max 的值存在】 ，则设置 newVal 值为 numbox 最大值
    max: function(newVal, oldVal) {
        // 使用 JS API 设置 numbox 的最大值
      mui(".mui-numbox")
        .numbox()
        .setOption("max", newVal);
    }
  }
};
</script>

<style lang="less" scoped>
</style>
